home *** CD-ROM | disk | FTP | other *** search
/ Cream of the Crop 1 / Cream of the Crop 1.iso / WINDOWS / CLIPST.ARJ / FILE.H < prev    next >
C/C++ Source or Header  |  1992-03-16  |  3KB  |  141 lines

  1. // file.h
  2.  
  3. #if !defined(FILE_H)
  4. #define FILE_H
  5.  
  6. #include<stdio.h>
  7. #include<string.h>
  8. #include<dir.h>
  9. #include<iostream.h>
  10. #include<io.h>
  11.  
  12. #if defined(_Windows)
  13. #include<windows.h>
  14. #endif
  15.  
  16. #include"findfile.h"
  17. #include"stddefs.h"
  18.  
  19. class File
  20.     {
  21. #if defined(_Windows)
  22.     int fh;
  23. #else
  24.     FILE *fp;
  25. #endif
  26.     char *name;
  27.     int linelen;
  28.     char *linebuffer;
  29. #if defined(_Windows)
  30.     int mode;
  31. #else
  32.     char mode[5];
  33. #endif
  34.     int MAXBUF;
  35.  
  36.     void Init(void);
  37.     void InitLineBuffer(void);
  38.     void SetLineBuffer(void);
  39.  
  40. public:
  41.     File(char *newname);
  42.     File(void)                      {   Init();             }
  43.     ~File(void);
  44.     void SetName(char *newname);
  45.     void Close(void);
  46.     void SetLineLen(int len)        {   linelen = len;      }
  47.     int Delete(void);
  48.     void Reset(void)                
  49.         {   
  50. #if defined(_Windows)
  51.         lseek(fh,0L,SEEK_SET);
  52. #else
  53.         rewind(fp);         
  54. #endif
  55.         }
  56. #if defined(_Windows)
  57.     int Open(WORD m);
  58.     
  59.     WORD WriteAt(DWORD offset, WORD size, void far *buf);
  60.     DWORD WriteAt(DWORD offset, DWORD size, void far *buf);
  61.     WORD Write(WORD size, void far *buf);
  62.     DWORD Write(DWORD size, void far *buf);
  63.     
  64.     WORD ReadAt(DWORD offset, WORD size, void far *buf);
  65.     DWORD ReadAt(DWORD offset, DWORD size, void far *buf);
  66.     WORD Read(WORD size,void far *buf);
  67.     DWORD Read(DWORD size,void far *buf);
  68.  
  69.     int Create(int attrib);
  70. #ifdef OLD
  71.     void Append(File& fromfile, DWORD startoffset = 0L, DWORD endoffset = 0xffffffffL);
  72. #else
  73.     void Append(File& fromfile, DWORD startoffset = 0L, DWORD endoffset = 0xffffffffL, 
  74.         LPSTR buffer = NULL);
  75. #endif
  76.     void CopyBytes(DWORD dest, DWORD source, DWORD size);
  77.  
  78. #else
  79.     int ReadAt(long offset, int size, void *buf);
  80.     int Open(char *m);
  81.     int Read(int size, void *buf);
  82.     int _fRead(int size, void far *buf, char *nearbuf);
  83.     int WriteAt(long offset, int size, void *buf);
  84.     int Write(int size, void *buf);
  85.     int _fWrite(int size, void far *buf, char *nearbuf);
  86.     int Move(char *movedir);
  87.     char *GetLine(void);
  88.     int Copy(char *newfile);
  89. #endif
  90.     long CurPosition(void)          
  91.         {   
  92. #if defined(_Windows)
  93.         return lseek(fh,0L,SEEK_CUR);
  94. #else
  95.         return ftell(fp);   
  96. #endif
  97.         }
  98.     int Offset(long offset);
  99.     long Size(void);
  100.     char *GetName(void)             {   return name;        }
  101.     int Flush(void)                 
  102.         {   
  103. #if defined(_Windows)
  104.         return 0;
  105. #else
  106.         return fflush(fp);  
  107. #endif
  108.         }
  109.     BOOL IsOpen(void)               
  110.         {   
  111. #if defined(_Windows)
  112.         return (fh ? TRUE : FALSE);
  113. #else
  114.         return (fp ? TRUE : FALSE); 
  115. #endif
  116.         }
  117.     BOOL Rename(char *newname)
  118.         {
  119.         if(rename(name,newname))
  120.             return FALSE;
  121.         SetName(newname);
  122.         return TRUE;
  123.         }
  124.     DWORD Eof(void)
  125.         {
  126. #if defined(_Windows)
  127.         return lseek(fh,0L,SEEK_END);
  128. #else
  129.         return fseek(fp,0L,SEEK_END);
  130. #endif
  131.         }
  132.     };
  133. #endif
  134.  
  135.  
  136.  
  137.             
  138.  
  139.  
  140.  
  141.